PowerPoint ফাইল ম্যানিপুলেশন (HSLF এবং XSLF)

Java Technologies - অ্যাপাচি পিওআই (Apache POI)
305

Apache POI লাইব্রেরি ব্যবহার করে আপনি PowerPoint ফাইল (যেমন .ppt এবং .pptx) ম্যানিপুলেট করতে পারেন। এটি দুটি প্রধান API সরবরাহ করে:

  1. HSLF (যেটি পুরোনো .ppt ফাইলের জন্য ব্যবহৃত)
  2. XSLF (যেটি আধুনিক .pptx ফাইলের জন্য ব্যবহৃত)

এই গাইডে, আমরা HSLF এবং XSLF API ব্যবহার করে PowerPoint ফাইল ম্যানিপুলেশন কিভাবে করা যায় তা দেখব।


১. HSLF API দিয়ে .ppt ফাইল ম্যানিপুলেশন

HSLF API ব্যবহৃত হয় পুরোনো PowerPoint 97-2003 ফাইল (.ppt) ম্যানিপুলেট করার জন্য। এটি একটি সাধারণ API যা কিছু মৌলিক কার্যকারিতা প্রদান করে, যেমন স্লাইড তৈরি করা, টেক্সট যোগ করা ইত্যাদি।

উদাহরণ: .ppt ফাইল তৈরি এবং টেক্সট যোগ করা

import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.apache.poi.hslf.usermodel.HSLFSlide;
import org.apache.poi.hslf.usermodel.HSLFTextBox;
import org.apache.poi.hslf.usermodel.HSLFShape;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class HSLFExample {
    public static void main(String[] args) throws IOException {
        // নতুন HSLFSlideShow তৈরি
        HSLFSlideShow ppt = new HSLFSlideShow();

        // নতুন স্লাইড তৈরি
        HSLFSlide slide = ppt.createSlide();

        // টেক্সট বক্স তৈরি এবং সেট করা
        HSLFTextBox textBox = new HSLFTextBox();
        textBox.setText("Hello, Apache POI!");
        slide.addShape(textBox);

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream(new File("example.ppt"))) {
            ppt.write(out);
        }

        // স্লাইডশো বন্ধ করা
        ppt.close();
    }
}

ব্যাখ্যা:

  • HSLFSlideShow: এটি .ppt ফাইলের জন্য ব্যবহৃত ক্লাস, যা স্লাইডশো তৈরি করতে সহায়তা করে।
  • createSlide(): এটি একটি নতুন স্লাইড তৈরি করে।
  • HSLFTextBox: এটি স্লাইডে টেক্সট যোগ করতে ব্যবহৃত হয়।

উদাহরণ: .ppt ফাইল থেকে টেক্সট পড়া

import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.apache.poi.hslf.usermodel.HSLFSlide;

import java.io.FileInputStream;
import java.io.IOException;

public class HSLFReadExample {
    public static void main(String[] args) throws IOException {
        // PowerPoint ফাইল থেকে HSLFSlideShow তৈরি
        FileInputStream fis = new FileInputStream(new File("example.ppt"));
        HSLFSlideShow ppt = new HSLFSlideShow(fis);

        // প্রথম স্লাইডটি পড়া
        HSLFSlide slide = ppt.getSlides()[0];
        System.out.println("Slide content: " + slide.getText());

        // ফাইল ইনপুট স্ট্রিম বন্ধ করা
        fis.close();
    }
}

ব্যাখ্যা:

  • getSlides(): এটি সমস্ত স্লাইডের একটি অ্যারে প্রদান করে, এবং আপনি স্লাইডের কন্টেন্ট অ্যাক্সেস করতে পারেন।

২. XSLF API দিয়ে .pptx ফাইল ম্যানিপুলেশন

XSLF API ব্যবহার করা হয় আধুনিক PowerPoint 2007+ ফাইল (.pptx) ম্যানিপুলেট করতে। এটি অনেক বেশি ফিচার সমৃদ্ধ এবং সহজে স্লাইড তৈরি, টেক্সট যোগ করা, ছবি встав করা, টেবিল তৈরি করা ইত্যাদি কাজ করতে সহায়তা করে।

উদাহরণ: .pptx ফাইল তৈরি এবং টেক্সট যোগ করা

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTextBox;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class XSLFExample {
    public static void main(String[] args) throws IOException {
        // নতুন XMLSlideShow তৈরি
        XMLSlideShow ppt = new XMLSlideShow();

        // নতুন স্লাইড তৈরি
        XSLFSlide slide = ppt.createSlide();

        // টেক্সট বক্স তৈরি এবং সেট করা
        XSLFTextBox textBox = new XSLFTextBox();
        textBox.setText("Hello, Apache POI!");
        slide.addShape(textBox);

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream(new File("example.pptx"))) {
            ppt.write(out);
        }

        // স্লাইডশো বন্ধ করা
        ppt.close();
    }
}

ব্যাখ্যা:

  • XMLSlideShow: এটি .pptx ফাইলের জন্য ব্যবহৃত ক্লাস, যা স্লাইডশো তৈরি করতে সহায়তা করে।
  • createSlide(): এটি একটি নতুন স্লাইড তৈরি করে।
  • XSLFTextBox: এটি স্লাইডে টেক্সট যোগ করতে ব্যবহৃত হয়।

উদাহরণ: .pptx ফাইলে টেবিল তৈরি করা

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTable;
import org.apache.poi.xslf.usermodel.XSLFTableRow;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class XSLFTableExample {
    public static void main(String[] args) throws IOException {
        // নতুন XMLSlideShow তৈরি
        XMLSlideShow ppt = new XMLSlideShow();

        // নতুন স্লাইড তৈরি
        XSLFSlide slide = ppt.createSlide();

        // টেবিল তৈরি করা
        XSLFTable table = slide.createTable();

        // প্রথম সারি তৈরি করা
        XSLFTableRow row1 = table.addRow();
        row1.getCell(0).setText("Header 1");
        row1.addCell().setText("Header 2");

        // দ্বিতীয় সারি তৈরি করা
        XSLFTableRow row2 = table.addRow();
        row2.getCell(0).setText("Row 1, Cell 1");
        row2.getCell(1).setText("Row 1, Cell 2");

        // ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream(new File("example_with_table.pptx"))) {
            ppt.write(out);
        }

        // স্লাইডশো বন্ধ করা
        ppt.close();
    }
}

ব্যাখ্যা:

  • createTable(): এটি একটি নতুন টেবিল তৈরি করতে ব্যবহৃত হয়।
  • addRow(): এটি একটি নতুন সারি (Row) তৈরি করে টেবিলের মধ্যে।

৩. PowerPoint ফাইলে চিত্র (Image) যোগ করা

XSLF API এর মাধ্যমে আপনি .pptx ফাইলে ছবি যোগ করতে পারেন। নিচে একটি উদাহরণ দেওয়া হয়েছে যেখানে একটি ছবি স্লাইডে যোগ করা হবে।

উদাহরণ: PowerPoint ফাইলে ছবি যোগ করা

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class XSLFImageExample {
    public static void main(String[] args) throws IOException {
        // নতুন XMLSlideShow তৈরি
        XMLSlideShow ppt = new XMLSlideShow();

        // নতুন স্লাইড তৈরি
        XSLFSlide slide = ppt.createSlide();

        // ছবি যোগ করা (যেমন .png বা .jpg ফাইল)
        FileInputStream imageStream = new FileInputStream(new File("image.png"));
        slide.createPicture(ppt.addPicture(imageStream, XMLSlideShow.PictureData.PictureType.PNG));

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream(new File("example_with_image.pptx"))) {
            ppt.write(out);
        }

        // স্লাইডশো বন্ধ করা
        ppt.close();
    }
}

ব্যাখ্যা:

  • createPicture(): এটি স্লাইডে ছবি যোগ করতে ব্যবহৃত হয়।
  • addPicture(): এটি ছবি অ্যাড করার জন্য PictureData অবজেক্ট তৈরি করে।

সারাংশ

  • HSLF API ব্যবহার করে আপনি .ppt ফাইলের মৌলিক কার্যকলাপ যেমন স্লাইড তৈরি, টেক্সট যোগ, ইত্যাদি করতে পারেন।
  • XSLF API আধুনিক .pptx ফাইলের

জন্য অনেক বেশি ফিচার সমৃদ্ধ এবং এটি স্লাইড, টেবিল, ছবি, চার্ট, এবং অন্যান্য উপাদান সহজে ম্যানিপুলেট করতে সহায়তা করে।

  • আপনি HSLF এবং XSLF API ব্যবহার করে PowerPoint ফাইল তৈরি, সম্পাদনা, এবং ফর্ম্যাট করতে পারেন।
Content added By

PowerPoint ফাইল তৈরি এবং সেভ করা (PPT এবং PPTX)

161

Apache POI লাইব্রেরি ব্যবহার করে আপনি PowerPoint ফাইল তৈরি এবং সেভ করতে পারেন। এটি দুইটি প্রধান ফরম্যাট সমর্থন করে: PPT (PowerPoint 97-2003) এবং PPTX (PowerPoint 2007 এবং পরবর্তী সংস্করণ)। এখানে PPTX ফরম্যাটে PowerPoint ফাইল তৈরি করার প্রক্রিয়া বিস্তারিতভাবে আলোচনা করা হবে, কারণ এটি আধুনিক ফরম্যাট এবং XML ভিত্তিক।

1. PPTX ফাইল তৈরি করা

Apache POI লাইব্রেরির XSLF (XML Slide Show Format) API ব্যবহার করে আপনি PPTX ফাইল তৈরি এবং সেভ করতে পারেন। এটি XML ফরম্যাটে ডেটা সংরক্ষণ করে এবং আধুনিক PowerPoint ডকুমেন্টে অধিক কার্যকারিতা প্রদান করে।

1.1 Dependencies যোগ করা (Maven/Gradle)

Maven এর মাধ্যমে Apache POI লাইব্রেরি এবং XSLF API অন্তর্ভুক্ত করার জন্য আপনার pom.xml-এ নিচের ডিপেন্ডেন্সি যোগ করতে হবে:

<dependencies>
    <!-- Apache POI for PowerPoint -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.3</version>
    </dependency>
</dependencies>

1.2 PowerPoint ফাইল তৈরি এবং সেভ করা

নীচে Apache POI ব্যবহার করে একটি PPTX ফাইল তৈরি করার উদাহরণ:

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTextShape;
import java.io.FileOutputStream;
import java.io.IOException;

public class CreatePowerPoint {
    public static void main(String[] args) throws IOException {
        // PowerPoint ফাইল তৈরি করা
        XMLSlideShow ppt = new XMLSlideShow();
        
        // একটি স্লাইড তৈরি করা
        XSLFSlide slide = ppt.createSlide();
        
        // স্লাইডে টেক্সট যোগ করা
        XSLFTextShape title = slide.createTextBox();
        title.setText("Hello, Apache POI!");
        
        // টেক্সট পজিশন এবং আকার সেট করা
        title.setAnchor(new java.awt.Rectangle(100, 100, 300, 50));

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("CreatedPresentation.pptx")) {
            ppt.write(out);
        }
        
        System.out.println("PowerPoint ফাইলটি সফলভাবে তৈরি করা হয়েছে!");
    }
}

কোডের ব্যাখ্যা:

  • XMLSlideShow: এটি PPTX ফাইলের একটি কনটেইনার ক্লাস।
  • XSLFSlide: এটি প্রতিটি স্লাইডের প্রতিনিধিত্ব করে।
  • XSLFTextShape: এটি স্লাইডে টেক্সট যোগ করতে ব্যবহৃত হয়।
  • setAnchor: এটি টেক্সটের পজিশন এবং আকার নির্ধারণ করে।

2. PPT ফাইল তৈরি করা

PPT ফাইল তৈরি করতে Apache POI-এর HSLF (Horrible Slide Show Format) API ব্যবহার করতে হয়, যা পুরনো PowerPoint 97-2003 ফরম্যাটে কাজ করে।

2.1 PPT ফাইল তৈরি করার উদাহরণ

import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.apache.poi.hslf.usermodel.HSLFSlide;
import org.apache.poi.hslf.usermodel.HSLFTextBox;
import java.io.FileOutputStream;
import java.io.IOException;

public class CreatePPT {
    public static void main(String[] args) throws IOException {
        // PowerPoint ফাইল তৈরি করা
        HSLFSlideShow ppt = new HSLFSlideShow();
        
        // একটি স্লাইড তৈরি করা
        HSLFSlide slide = ppt.createSlide();
        
        // স্লাইডে টেক্সট যোগ করা
        HSLFTextBox title = slide.createTextBox();
        title.setText("Hello, Apache POI!");

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("CreatedPresentation.ppt")) {
            ppt.write(out);
        }
        
        System.out.println("PPT ফাইলটি সফলভাবে তৈরি করা হয়েছে!");
    }
}

কোডের ব্যাখ্যা:

  • HSLFSlideShow: এটি PPT ফাইলের একটি কনটেইনার ক্লাস।
  • HSLFSlide: এটি প্রতিটি স্লাইডের প্রতিনিধিত্ব করে।
  • HSLFTextBox: এটি স্লাইডে টেক্সট যোগ করতে ব্যবহৃত হয়।

3. PPTX এবং PPT ফাইল সেভ করার পার্থক্য

  • PPTX ফাইল XML ভিত্তিক এবং আধুনিক PowerPoint ফরম্যাট, যা অনেক উন্নত ফিচার সমর্থন করে।
  • PPT ফাইল পুরনো PowerPoint ফরম্যাট এবং এটি বাইনারি ফরম্যাটে সংরক্ষিত থাকে।

সারাংশ

  • PPTX ফাইল তৈরি করতে XMLSlideShow এবং XSLFSlide ব্যবহার করা হয়, যা আধুনিক PowerPoint ফরম্যাটের জন্য উপযুক্ত।
  • PPT ফাইল তৈরি করতে HSLFSlideShow এবং HSLFSlide ব্যবহার করা হয়, যা পুরনো PowerPoint ফরম্যাটের জন্য উপযুক্ত।
  • উভয় ফরম্যাটে আপনি স্লাইড তৈরি, টেক্সট যোগ, পজিশন এবং আকার নির্ধারণ করতে পারেন এবং তারপর ফাইলটি সেভ করতে পারেন।

এটি ছিল PowerPoint ফাইল তৈরি এবং সেভ করার একটি সংক্ষিপ্ত গাইড।

Content added By

Slide তৈরি করা এবং কনটেন্ট যোগ করা

163

Apache POI ব্যবহার করে আপনি PowerPoint ফাইল তৈরি করতে পারেন, যেমন PPT এবং PPTX ফরম্যাটে। এর জন্য XSLF API ব্যবহার করা হয়, যা PPTX ফাইলের জন্য উপযুক্ত। HSLF API পুরানো PPT ফরম্যাটের জন্য ব্যবহৃত হয়।

এখানে আলোচনা করা হবে কিভাবে Apache POI ব্যবহার করে PowerPoint ফাইল তৈরি এবং সেই ফাইলে Slide এবং কনটেন্ট যোগ করা যায়।


Slide তৈরি করা এবং কনটেন্ট যোগ করা (PPTX ফাইল)

১. Apache POI এর মাধ্যমে নতুন PowerPoint ফাইল তৈরি করা

XSLF API ব্যবহার করে আমরা একটি নতুন PPTX ফাইল তৈরি করতে পারি এবং তাতে Slide যোগ করতে পারি।

উদাহরণ: নতুন PowerPoint ফাইল তৈরি এবং Slide যোগ করা

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTextBox;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import java.io.FileOutputStream;
import java.io.IOException;

public class CreatePPTX {
    public static void main(String[] args) {
        try {
            // Create a new XMLSlideShow object
            XMLSlideShow ppt = new XMLSlideShow();

            // Create a slide
            XSLFSlide slide = ppt.createSlide();

            // Add a text box to the slide
            XSLFTextBox textBox = slide.createTextBox();
            XSLFTextRun textRun = textBox.addNewTextParagraph().addNewTextRun();
            textRun.setText("Hello, this is a sample slide created with Apache POI!");
            textRun.setFontSize(24.0);
            textBox.setAnchor(new java.awt.Rectangle(100, 100, 400, 100));

            // Save the PowerPoint presentation to a file
            FileOutputStream out = new FileOutputStream("SamplePPTX.pptx");
            ppt.write(out);
            out.close();

            System.out.println("PPTX file created successfully!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে একটি নতুন PowerPoint ফাইল তৈরি করা হয়েছে, যার মধ্যে একটি Slide এবং একটি TextBox যোগ করা হয়েছে। TextBox এর মধ্যে একটি টেক্সট যোগ করা হয়েছে এবং ফাইলটি SamplePPTX.pptx নামে সেভ করা হয়েছে।


Slide এর মধ্যে অন্যান্য কনটেন্ট যোগ করা

২. Text, Image, এবং Shapes যোগ করা

XSLF API এর মাধ্যমে আপনি Slide এ শুধু TextBox নয়, বরং Image, Shapes, Tables, Charts এবং আরও অনেক কনটেন্ট যোগ করতে পারেন। নিচে কিছু সাধারণ কনটেন্ট যোগ করার উদাহরণ দেওয়া হলো।

উদাহরণ: Slide এ Image যোগ করা

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import org.apache.poi.xslf.usermodel.XSLFImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class AddImageToSlide {
    public static void main(String[] args) {
        try {
            // Create a new PowerPoint presentation
            XMLSlideShow ppt = new XMLSlideShow();

            // Create a slide
            XSLFSlide slide = ppt.createSlide();

            // Add an image to the slide
            File imgFile = new File("image.jpg"); // Ensure the image is in the correct path
            byte[] pictureData = java.nio.file.Files.readAllBytes(imgFile.toPath());
            XSLFPictureData picture = ppt.addPicture(pictureData, XSLFPictureData.PICTURE_TYPE_JPEG);
            slide.createPicture(picture);

            // Save the PowerPoint presentation to a file
            FileOutputStream out = new FileOutputStream("SampleWithImage.pptx");
            ppt.write(out);
            out.close();

            System.out.println("PPTX with image created successfully!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে Slide এ একটি Image যোগ করা হয়েছে, যেটি image.jpg নামক একটি ছবি। ছবিটি PowerPoint ফাইলে সেভ করা হয়েছে।

উদাহরণ: Slide এ Shape যোগ করা

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFAutoShape;
import org.apache.poi.xslf.usermodel.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import java.io.FileOutputStream;
import java.io.IOException;

public class AddShapeToSlide {
    public static void main(String[] args) {
        try {
            // Create a new PowerPoint presentation
            XMLSlideShow ppt = new XMLSlideShow();

            // Create a slide
            XSLFSlide slide = ppt.createSlide();

            // Add a shape (rectangle) to the slide
            XSLFAutoShape shape = slide.createAutoShape();
            shape.setShapeType(ShapeType.RECTANGLE);
            shape.setAnchor(new java.awt.Rectangle(50, 50, 200, 100));

            // Add text to the shape
            XSLFTextParagraph p = shape.addNewTextParagraph();
            XSLFTextRun r = p.addNewTextRun();
            r.setText("This is a rectangle shape with text!");

            // Save the PowerPoint presentation to a file
            FileOutputStream out = new FileOutputStream("SampleWithShape.pptx");
            ppt.write(out);
            out.close();

            System.out.println("PPTX with shape created successfully!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে Slide এ একটি Rectangle Shape যোগ করা হয়েছে, এবং সেই শেইপের মধ্যে কিছু টেক্সট যোগ করা হয়েছে।


সারাংশ

Apache POI এর মাধ্যমে PowerPoint (PPTX) ফাইল তৈরি করা এবং তাতে Slide যোগ করা খুবই সহজ। আপনি TextBox, Image, Shape, Chart এবং অন্যান্য কনটেন্ট Slide এ যোগ করতে পারেন। এই সুবিধাটি Apache POI কে Java ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য একটি শক্তিশালী টুল হিসেবে তৈরি করে, যেগুলি PowerPoint ফাইলের কনটেন্ট প্রোগ্রামেটিকভাবে তৈরি, সম্পাদনা এবং ম্যানিপুলেট করতে চায়।


Content added By

টেক্সট, ছবি এবং Shape যোগ করা

279

Apache POI লাইব্রেরি ব্যবহার করে Microsoft Word ডকুমেন্টে (DOCX) টেক্সট, ছবি, এবং Shape (যেমন রেকটেঙ্গেল, সার্কেল ইত্যাদি) যোগ করা সম্ভব। এই প্রক্রিয়াতে আমরা XWPFDocument ব্যবহার করে টেক্সট এবং ছবি যোগ করব, এবং XWPFPicture এবং XWPFShape ব্যবহার করে শেপ যোগ করব।


১. টেক্সট যোগ করা

XWPFParagraph এবং XWPFRun ব্যবহার করে Word ডকুমেন্টে টেক্সট যোগ করা হয়। প্রতিটি প্যারাগ্রাফে এক বা একাধিক রান থাকে, এবং প্রতিটি রান একটি টেক্সট সেগমেন্টের জন্য ব্যবহৃত হয়।

উদাহরণ: টেক্সট যোগ করা

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class AddTextToWordDocument {
    public static void main(String[] args) throws IOException {
        // নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // প্যারাগ্রাফ তৈরি
        XWPFParagraph paragraph = document.createParagraph();

        // রান তৈরি এবং টেক্সট যোগ করা
        XWPFRun run = paragraph.createRun();
        run.setText("Hello, this is a sample text in a Word document.");

        // ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("TextInWordDocument.docx")) {
            document.write(out);
        }

        document.close();
    }
}

২. ছবি যোগ করা

Word ডকুমেন্টে ছবি যোগ করতে XWPFPictureData এবং XWPFPicture ব্যবহার করা হয়। আমরা ছবি যোগ করার জন্য ছবির পথ বা বাইনারি ডেটা ব্যবহার করতে পারি।

উদাহরণ: ছবি যোগ করা

import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.util.Units;

import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.IOException;

public class AddImageToWordDocument {
    public static void main(String[] args) throws IOException {
        // নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // প্যারাগ্রাফ তৈরি
        XWPFParagraph paragraph = document.createParagraph();

        // ছবি যোগ করা (যেমন PNG বা JPEG)
        String imagePath = "path_to_image.jpg";  // আপনার ছবি ফাইলের পাথ দিন
        XWPFPictureData pictureData = document.addPictureData(new FileInputStream(imagePath), XWPFDocument.PICTURE_TYPE_JPEG);

        // ছবি সন্নিবেশ করা
        XWPFRun run = paragraph.createRun();
        run.addPicture(new FileInputStream(imagePath), XWPFDocument.PICTURE_TYPE_JPEG, imagePath, Units.toEMU(200), Units.toEMU(100));  // ইমেজ সাইজ 200x100

        // ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("WordWithImage.docx")) {
            document.write(out);
        }

        document.close();
    }
}

কোড ব্যাখ্যা:

  1. addPictureData পদ্ধতি ব্যবহার করে ছবি ফাইলটি ডকুমেন্টে যুক্ত করা হয়।
  2. run.addPicture পদ্ধতি ব্যবহার করে সেই ছবিটি প্যারাগ্রাফে সন্নিবেশ করা হয়।
  3. Units.toEMU(200) দিয়ে ছবির সাইজ 200 পিক্সেল x 100 পিক্সেলে কনভার্ট করা হয়।

৩. Shape (চিত্র) যোগ করা

Word ডকুমেন্টে শেপ (যেমন রেকটেঙ্গেল, সার্কেল) যোগ করতে XWPFShape ব্যবহার করা হয়। এখানে আমরা একটি রেকটেঙ্গেল শেপ তৈরি করব এবং সেটি ডকুমেন্টে সন্নিবেশ করব।

উদাহরণ: Shape (Rectangle) যোগ করা

import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.ss.util.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class AddShapeToWordDocument {
    public static void main(String[] args) throws IOException {
        // নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // প্যারাগ্রাফ তৈরি
        XWPFParagraph paragraph = document.createParagraph();

        // Shape (Rectangle) তৈরি করা
        XWPFRun run = paragraph.createRun();
        run.setText("This is a rectangle shape below:");

        // Shape সন্নিবেশ করা (Rectangle)
        XWPFPictureData pictureData = document.createPictureData();
        pictureData.setPictureType(XWPFPictureData.PICTURE_TYPE_EMF); // EMF picture type
        pictureData.setPictureData(new byte[]{});  // Shape data in bytes

        // Shape properties সেট করা
        XWPFShape shape = paragraph.createShape();
        shape.setShapeType(XWPFPictureData.PICTURE_TYPE_EMF); // Example shape type
        shape.setWidth(200);
        shape.setHeight(100);
        shape.setTop(50);
        shape.setLeft(100);

        // ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("WordWithShape.docx")) {
            document.write(out);
        }

        document.close();
    }
}

কোড ব্যাখ্যা:

  1. XWPFShape ব্যবহার করে একটি শেপ (এখানে রেকটেঙ্গেল) তৈরি করা হয়েছে।
  2. setShapeType, setWidth, setHeight ইত্যাদি পদ্ধতি ব্যবহার করে শেপটির আকার এবং অবস্থান নির্ধারণ করা হয়েছে।
  3. ডকুমেন্টে শেপ সন্নিবেশ করার পর, ফাইল সেভ করা হয়েছে।

সারাংশ

  • Apache POI লাইব্রেরি ব্যবহার করে Word ডকুমেন্টে টেক্সট, ছবি, এবং Shape যোগ করা যায়।
  • XWPFParagraph এবং XWPFRun দিয়ে টেক্সট যোগ করা হয়।
  • XWPFPictureData এবং XWPFPicture ব্যবহার করে ছবি ডকুমেন্টে সন্নিবেশ করা হয়।
  • XWPFShape ব্যবহার করে Word ডকুমেন্টে বিভিন্ন ধরনের শেপ (যেমন রেকটেঙ্গেল, সার্কেল) যোগ করা যায়।
Content added By

Slide Transition এবং Animation

200

Apache POI দিয়ে PowerPoint (PPTX) ফাইল তৈরি ও সম্পাদনার সময় আপনি Slide Transition এবং Animation যোগ করতে পারেন। যদিও Apache POI এর মাধ্যমে slide transitions এবং complex animations সরাসরি যোগ করা সম্ভব নয়, তবে কিছু সাধারণ transition এবং animation প্রভাব প্রয়োগ করা যায়। আমরা নিচে এই বিষয়গুলোর কার্যকারিতা এবং পদ্ধতি নিয়ে আলোচনা করব।


১. Slide Transition সেট করা

PowerPoint স্লাইডের Transition হলো স্লাইড পরিবর্তনের সময়ের বিশেষ একটি visual effect। Apache POI এর মাধ্যমে আপনি Slide Transition যোগ করতে পারেন, কিন্তু খুব advanced transition effects এখনও সরাসরি সমর্থিত নয়।

উদাহরণ: Slide Transition যোগ করা

import org.apache.poi.xslf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class SlideTransitionExample {

    public static void main(String[] args) throws IOException {
        // PowerPoint ডকুমেন্ট তৈরি
        XMLSlideShow ppt = new XMLSlideShow();

        // স্লাইড তৈরি
        XSLFSlide slide1 = ppt.createSlide();

        // স্লাইডে কিছু কনটেন্ট যোগ করা
        XSLFTextBox title = slide1.createTextBox();
        title.setText("Welcome to Apache POI");

        // স্লাইড ট্রানজিশন সেট করা
        XSLFSlideMaster master = ppt.getSlideMasters()[0];
        XSLFTransition transition = slide1.getTransition();
        transition.setType(XSLFTransition.Type.FADE);  // FADE transition set করা

        // PowerPoint ফাইল সেভ করা
        FileOutputStream out = new FileOutputStream("slide_transition_example.pptx");
        ppt.write(out);
        out.close();

        System.out.println("Slide Transition সফলভাবে যোগ করা হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • XSLFSlide: একটি নতুন স্লাইড তৈরি করা হয়েছে।
  • XSLFTransition: স্লাইডের ট্রানজিশন টাইপ সেট করা হয়েছে, এখানে FADE ট্রানজিশন ব্যবহার করা হয়েছে।

এই কোডের মাধ্যমে আপনি স্লাইডের মাঝে FADE ট্রানজিশন যোগ করতে পারবেন।


২. Slide Animation সেট করা

PowerPoint স্লাইডের Animation ব্যবহার করে আপনি স্লাইডের কনটেন্টগুলির মধ্যে গতিশীলতা যোগ করতে পারেন, যেমন: টেক্সট, ইমেজ বা শেপের ভিন্ন ভিন্ন অ্যানিমেশন। তবে Apache POI এ খুব সহজ অ্যানিমেশন প্রভাব যোগ করা সম্ভব, যেমন স্লাইডে কোন এফেক্টের মাধ্যমে কনটেন্ট আসে।

উদাহরণ: Slide Animation যোগ করা

Apache POI এর মাধ্যমে সরাসরি অ্যানিমেশন যোগ করা যায় না, তবে আপনি XSLF ডকুমেন্টে basic motion paths বা কিছু predefined animation effects যোগ করতে পারেন। তবে এই প্রক্রিয়া সাধারণভাবে Slide level না হয়ে Shape level এ করা হয়।

Example (Basic Animation concept using shape positioning):

import org.apache.poi.xslf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class SlideAnimationExample {

    public static void main(String[] args) throws IOException {
        // PowerPoint ডকুমেন্ট তৈরি
        XMLSlideShow ppt = new XMLSlideShow();

        // স্লাইড তৈরি
        XSLFSlide slide = ppt.createSlide();

        // স্লাইডে একটি টেক্সট বক্স তৈরি
        XSLFTextBox textBox = slide.createTextBox();
        textBox.setText("Hello, Apache POI!");

        // স্লাইডে Animation যোগ করা হচ্ছে (একটি নির্দিষ্ট পজিশনে টেক্সট মুভ করা)
        XSLFTextShape shape = slide.createTextBox();
        shape.setAnchor(new java.awt.Rectangle(50, 50, 400, 50));  // Position at (50,50)

        // Animation effect (Movement) by changing position
        shape.setAnchor(new java.awt.Rectangle(300, 100, 400, 50)); // Move to a new position

        // PowerPoint ফাইল সেভ করা
        FileOutputStream out = new FileOutputStream("slide_animation_example.pptx");
        ppt.write(out);
        out.close();

        System.out.println("Slide Animation (Movement) সফলভাবে যোগ করা হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • createTextBox(): স্লাইডে একটি টেক্সট বক্স তৈরি করা হয়েছে।
  • setAnchor(): একটি নির্দিষ্ট পজিশনে স্লাইডে টেক্সট বক্স বসানো হয়েছে এবং পরে সেই পজিশন পরিবর্তন করা হয়েছে, যা একটি অ্যানিমেশন রকমের পরিবর্তন হতে পারে।

৩. Available Transition Types

PowerPoint ট্রানজিশনের মধ্যে অনেক ধরনের ধরনের প্রভাব থাকতে পারে। Apache POI এর মাধ্যমে আপনি কিছু সাধারণ ট্রানজিশন প্রভাব যোগ করতে পারেন, যেমন:

  • FADE: স্লাইডটি ধীরে ধীরে পরবর্তী স্লাইডে পরিবর্তিত হয়।
  • WIPE: স্লাইডটি একটি দিক থেকে অপর দিকে স্লাইড হয়।
  • DISSOLVE: স্লাইডটি ছোট ছোট আংশিকভাবে dissolve হয়ে যায়।

৪. Animation Types in Apache POI

যদিও Apache POI এর মাধ্যমে স্লাইড অ্যানিমেশন সমর্থিত নয়, তবে আপনি কিছু সাধারণ অ্যানিমেশন প্রয়োগ করতে পারবেন, যেমন:

  • Appear: টেক্সট বা ইমেজ একটি মুহূর্তে প্রদর্শিত হয়।
  • Fly In: টেক্সট বা শেপ স্ক্রীনে প্রবাহিত হয়।

সারাংশ

Apache POI এর মাধ্যমে PowerPoint স্লাইডে Slide Transition এবং কিছু সাধারণ Animation যোগ করা সম্ভব, তবে এগুলি সাধারণভাবে slide-level বা shape-level animation হয় এবং অত্যন্ত complex বা advanced animation গুলি এখনও সমর্থিত নয়। সাধারণ FADE, WIPE, এবং DISSOLVE ট্রানজিশন প্রভাব এবং movement ধরনের অ্যানিমেশন যোগ করা যেতে পারে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...